#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @time: 2022-08-08 10:46:20
# @author: 鹰眼测试

"""
Enum是Python的枚举类，主要用来存放一些常量数据
例如：BASE_PATH = os.path.dirname(os.path.dirname(__file__))
当然，这些数据也是可以使用变量进行存储的，只不过为了防止他人改动，所以才使用常量
变量可以随意的调用以及修改，但常量只能调用，不能修改（当然，你有那么闲的话，也可以通过特殊的方法修改常量）
常量的调用：class.enumName.value
"""


from enum import Enum
import os


class PathEnum(Enum):
    # 项目根目录
    BASE_PATH = os.path.dirname(os.path.dirname(__file__))

    # 用例存放位置
    DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "Data")

    # 系统文件路径
    SYSTEM_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "SystemFile")

    # 用户配置文件路径
    USER_CONF_PATH = os.path.join(os.path.join(os.path.dirname(os.path.dirname(__file__)), "SystemFile"), "user.conf.yaml")

    # 报告路径
    REPORT_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), "Report")


def get_path(path):
    """
    :param path: 输入对应参数，返回对应的路径（调用get_path方法时，传入的参数不区分大小写）
    base: 项目根目录  SimpleAPI
    data: 数据存放目录  SimpleAPI -> Data
    system: 系统文件目录  SimpleAPI -> SystemFile
    user: 用户配置文件目录  SimpleAPI -> SystemFile -> user.conf.yaml
    report: 报告目录  SimpleAPI -> Report
    :return: 按需返回目录
    """
    if str(path).lower() == "base":
        return PathEnum.BASE_PATH.value
    elif str(path).lower() == "data":
        return PathEnum.DATA_PATH.value
    elif str(path).lower() == "system":
        return PathEnum.SYSTEM_PATH.value
    elif str(path).lower() == "user":
        return PathEnum.USER_CONF_PATH.value
    elif str(path).lower() == "report":
        return PathEnum.REPORT_PATH.value
